/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ivanbiz.service;

import com.ivanbiz.dao.PenggunaDAO;
import com.ivanbiz.dao.impl.PenggunaDAOImpl;
import com.ivanbiz.model.Pengguna;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.zkoss.zhtml.Messagebox;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Window;

/**
 *
 * @author iw20149x
 */
public class PasswordService extends SelectorComposer<Component> {

    PenggunaDAO penggunaDAO = new PenggunaDAOImpl();
    @Wire
    Window win;
    @Wire
    Textbox password;
    @Wire
    Textbox rePassword;
    Pengguna pengguna;

    @Override
    public void doAfterCompose(Component component) throws Exception {
        super.doAfterCompose(component);
        pengguna = (Pengguna) Executions.getCurrent().getArg().get("pengguna");
    }

    @Listen("onClick=#simpan;")
    public void simpan() {
        if (!password.getValue().equals(rePassword.getValue())) {
            Messagebox.show("Password Confirm tidak sama dengan Password Baru");
        } else {
            MD5 md5 = new MD5(password.getValue());
            pengguna.setPassword(md5.asHex());
            validate(pengguna);
        }
    }

    private void validate(Pengguna pengguna) {
        if (pengguna.getPassword().trim().isEmpty()) {
            Messagebox.show("Password tidak boleh kosong");
        } else {
            try {
                penggunaDAO.update(pengguna);
                password.setText("");
                rePassword.setText("");
                Messagebox.show("Password sudah diganti. Silahkan login kembali");
            } catch (Exception ex) {
                Logger.getLogger(PasswordService.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
}
